Отображение цветных полос через HDMI

Введение

В этом документе подробно описывается, как использовать Vivado 2021 и Vitis 2021 для отображения четырех цветных полос на мониторе компьютера через интерфейс HDMI путем настройки аппаратного обеспечения, программного обеспечения и ограничений по выводам. Объяснение будет дополнено предоставленными схемами аппаратного дизайна модулей проекта, изображениями результатов эксперимента и блок-схемой системы.

Аппаратный дизайн

Анализ модулей

Анализ блок-схемы системы

Блок-схема системы выглядит следующим образом:

image-20250626150515752

Секция PS (Processing System)

Секция PL (Programmable Logic)

Аппаратный дизайн

Упакуйте секцию драйвера HDMI в IP-ядро для последующего прямого импорта.

На основе предыдущего аппаратного дизайна нам необходимо добавить дизайн IP-ядра ZYNQ:

image-20250625135911109

image-20250625140119414

image-20250625140224589

IP-ядро после настройки:

image-20250626111640069

Найдите ядро VDMA и настройте его, как показано на рисунке ниже:

image-20250625140433000

image-20250625140638518

Найдите ядро синхронизации и настройте его, как показано на рисунке ниже:

image-20250625140706307

image-20250625140834752

Найдите ядро видеовыхода и настройте его, как показано на рисунке ниже:

image-20250625140915948

image-20250625141007912

Найдите ядро тактирования и настройте его, как показано на рисунке ниже:

image-20250625141143824

image-20250625141334224

image-20250625141725063

Добавьте пользовательское IP: dvi_transmitter. Это IP-ядро находится в папке ip_repo в каталоге проекта.

image-20250902135018005

После добавления подключите и выведите внешние порты (необходимо вывести только порт TMDS). Подключите pclk_x5 к clkout2 тактового выхода из предыдущего шага.

image-20250902135110255

Выполните соединения, затем нажмите «Run Connection Automation». Модули и их интерфейсы, которые будут автоматически подключены, перечислены ниже. Установите флажок «All Automation», а затем нажмите кнопку «OK». Система автоматически сгенерирует два модуля AXI Interconnect (axi_mem_intercon и ps7_0_axi_periph). Кроме того, система также автоматически сгенерирует один модуль сброса (rst_ps7_0_150M) для сброса периферийных устройств на шине.

image-20250902135212880

После изменения блочного дизайна сохраните его, затем перегенерируйте Output Products и «Create HDL Wrapper». Далее нам нужно изменить файл ограничений, чтобы назначить выводы для интерфейса HDMI в соответствии со схемой.

image-20250702110735874

image-20250624175025843

image-20250702111512801

Сохраните файл ограничений, затем перейдите к последующим шагам для перегенерации файла BIT.

Программный дизайн

Щелкните правой кнопкой мыши по созданному проекту платформы, выберите «Update Hardware Specification», укажите путь к файлу .xsa. Появится следующее диалоговое окно; нажмите OK, что означает успешное обновление. Хорошая практика: после обновления снова щелкните правой кнопкой мыши по проекту платформы и выберите «Build».

image-20250626115247673

image-20250626115304993

Компиляция и отладка

После успешной компиляции проекта подключите JTAG отладочной платы к компьютеру с помощью кабеля USB Type-C. Используйте другой кабель USB Type-C для подключения PS UART платы к компьютеру. Используйте кабель HDMI для подключения выходного порта HDMI платы к входному порту HDMI монитора компьютера.

На компьютере откройте инструмент серийной отладки MobaXterm и установите соединение с PS UART отладочной платы.

image-20250626115930751

Войдите в режим отладки в Vitis: в разделе «Debug As» выберите первый вариант. Запуск на полной скорости позволит вам видеть отладочную информацию через последовательный порт.

image-20250626150414017

Результаты отладки следующие:

image-20250626115909635

Результаты выполнения следующие:

image-20250626120025754